package org.example.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.domain.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.ChangeStock;
import org.example.model.OrderConfirmParam;
import org.example.vo.OrderStatusCount;
import org.example.vo.OrderVo;

import java.util.Date;
import java.util.Map;

public interface OrderService extends IService<Order>{


    Page<Order> queryOrderPage(Page<Order> page, String orderNumber, Integer status, Date startTime, Date endTime);

    Order queryOrderDetailByOrderNumber(Long orderNumber);

    OrderStatusCount queryMemberOrderStatusCount();

    Page<Order> queryMemberOrderPage(Long current, Long size, Long status);

    Order queryMemberOrderDetailByOrderNumber(String orderNumber);

    Boolean receiptMemberOrder(String orderNumber);

    Boolean removeMemberOrderByOrderNumber(String orderNumber);

    Map<String,Object> deliverCheckMemberOrderByOrderNumber(String orderNumber);

    OrderVo queryMemberOrderConfirmVo(OrderConfirmParam orderConfirmParam);

    String submitOrder(OrderVo orderVo);

    void orderRollBack(Order order, ChangeStock changeStock);
}
